package com.tarzan.cms.modules.admin.controller.oss;

import com.tarzan.cms.common.constant.CoreConst;
import com.tarzan.cms.modules.admin.service.oss.OssConfigService;
import com.tarzan.cms.modules.admin.vo.CloudStorageConfigVo;
import com.tarzan.cms.modules.admin.vo.base.ResponseVo;
import com.tarzan.cms.utils.BeanUtil;
import com.tarzan.cms.utils.ResultUtil;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
 * @author Lenovo
 */
@Controller
@RequestMapping("/oss")
@AllArgsConstructor
public class OssConfigController {

    private final OssConfigService ossConfigService;

    @GetMapping("/config")
    public String config(Model model) {
      //  Map<String, String> map = ossConfigService.selectAll();
        model.addAttribute("cloudStorageConfig", ossConfigService.getConfig());
        return CoreConst.ADMIN_PREFIX + "upload/config";
    }

    @ResponseBody
    @PostMapping("/saveConfig")
    public ResponseVo saveConfig(CloudStorageConfigVo cloudStorageConfig) {
        Map<String, String> map = BeanUtil.toMap(cloudStorageConfig);
        boolean success = ossConfigService.updateAll(map);
        if (success) {
            return ResultUtil.success("云存储配置保存成功！");
        } else {
            return ResultUtil.error("云存储配置保存失败！");
        }
    }
}
